/*
 * To change this license header, choose License Headers in Project Properties.conserto
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Model;

import DAO.DAOPessoa;
import java.io.Serializable;
import java.util.Date;
import javax.swing.text.MaskFormatter;

/**
 *
 * @author ebastos
 */
public class BeanPessoa implements Serializable {

    //variaveis da tabela pessoa
    private long CPF;
    private int ESTADOID;
    private String nome;
    private boolean sexo;
    private Date dtnascimento;
    private String email;
    private String cidade;
    private String logradouro;
    private int numero;
    private String cep;
    private String bairro;
    
    //nao faz parte da tabela pessoa do banco, so instancia da classe
    private BeanEstado estado;

    public BeanPessoa() {
    }
    
    public BeanPessoa(long CPF) {
        DAOPessoa bancoPessoa = new DAOPessoa();
        BeanPessoa pessoa = bancoPessoa.RetornaPessoa(CPF);
        if (pessoa == null)
            return;
        this.CPF = pessoa.CPF;
        this.nome = pessoa.nome;
        this.sexo = pessoa.sexo;
        this.dtnascimento = pessoa.dtnascimento;
        this.email = pessoa.email;
        this.estado = pessoa.estado;
        this.cidade = pessoa.cidade;
        this.logradouro = pessoa.logradouro;
        this.numero = pessoa.numero;
        this.cep = pessoa.cep;
        this.bairro = pessoa.bairro;
    }
    
    public BeanPessoa(String nome) {
        DAOPessoa bancoPessoa = new DAOPessoa();
        BeanPessoa pessoa = bancoPessoa.RetornaPessoa(nome);
        if (pessoa == null)
            return;
        this.CPF = pessoa.CPF;
        this.nome = pessoa.nome;
        this.sexo = pessoa.sexo;
        this.dtnascimento = pessoa.dtnascimento;
        this.email = pessoa.email;
        this.estado = pessoa.estado;
        this.cidade = pessoa.cidade;
        this.logradouro = pessoa.logradouro;
        this.numero = pessoa.numero;
        this.cep = pessoa.cep;
        this.bairro = pessoa.bairro;
    }

    public long getCPF() {
        return CPF;
    }
    
    public String getCPFString() {
         try {

            //se tiver menos de 11 char eh pq era 0 no começo do long
            String cnpj = String.format("%11s", CPF).replace(' ', '0');;

            MaskFormatter mf = new MaskFormatter("###.###.###-##");
            mf.setValueContainsLiteralCharacters(false);
            
            return mf.valueToString(cnpj); // 12.345.678/0001-99

        } catch (Exception e) {
            return "";
        }
    }

    public void setCPF(long CPF) {
        this.CPF = CPF;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public boolean isSexo() {
        return sexo;
    }

    public void setSexo(boolean sexo) {
        this.sexo = sexo;
    }

    public Date getDtnascimento() {
        return dtnascimento;
    }

    public void setDtnascimento(Date dtnascimento) {
        this.dtnascimento = dtnascimento;
    }
    
    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
    
    public int getESTADOID() {
        return ESTADOID;
    }

    public void setESTADOID(int ESTADOID) {
        this.ESTADOID = ESTADOID;
    }

    public BeanEstado getEstado() {
        if (this.estado == null)
            this.estado = new BeanEstado(this.ESTADOID);
        return estado;
    }

    public void setEstado(BeanEstado estado) {
        this.ESTADOID = estado.getID();
        this.estado = estado;
    }

    public String getCidade() {
        return cidade;
    }

    public void setCidade(String cidade) {
        this.cidade = cidade;
    }

    public String getLogradouro() {
        return logradouro;
    }

    public void setLogradouro(String logradouro) {
        this.logradouro = logradouro;
    }

    public Integer getNumero() {
        return numero;
    }

    public void setNumero(Integer numero) {
        this.numero = numero;
    }

    public String getCep() {
        return cep;
    }

    public void setCep(String cep) {
        this.cep = cep;
    }

    public String getBairro() {
        return bairro;
    }

    public void setBairro(String bairro) {
        this.bairro = bairro;
    }

}
